package com.zx.notification.admin.service;

import com.zx.core.wrapper.ObjectWrapper;
import com.zx.core.wrapper.PageWrapper;
import com.zx.core.wrapper.ResponseWrapper;
import com.zx.notification.common.param.NotificationTemplatesParam;
import com.zx.notification.common.vo.NotificationTemplatesVO;


/**
 * <p>
 * description: 通知模板管理服务接口 <br>
 * create: 2025-10-17
 * </p>
 *
 * @author zhou  xun
 */
public interface INotificationTemplatesService {

    /**
     * 分页查询通知模板列表VO
     *
     * @param notificationTemplatesParam 通知模板查询参数
     * @return {@link PageWrapper<  NotificationTemplatesVO  >}
     */
    PageWrapper<NotificationTemplatesVO> getNotificationTemplatesVOListByPage(NotificationTemplatesParam notificationTemplatesParam);

    /**
     * 新增通知模板
     *
     * @param notificationTemplatesParam 通知模板参数
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper addNotificationTemplate(NotificationTemplatesParam notificationTemplatesParam);

    /**
     * 编辑通知模板
     *
     * @param notificationTemplatesParam 通知模板参数
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper editNotificationTemplate(NotificationTemplatesParam notificationTemplatesParam);

    /**
     * 删除通知模板
     *
     * @param notificationTemplateId 通知模板id
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper deleteNotificationTemplate(String notificationTemplateId);

    /**
     * 根据ID查询通知模板信息
     *
     * @param notificationTemplateId 通知模板id
     * @return {@link ObjectWrapper<NotificationTemplatesVO>}
     */
    ObjectWrapper<NotificationTemplatesVO> selectNotificationTemplateById(String notificationTemplateId);

    /**
     * 更新通知模板状态
     *
     * @param notificationTemplatesParam 通知模板参数
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper updateNotificationTemplateStatus(NotificationTemplatesParam notificationTemplatesParam);
}